package permissions

import (
	"yundian/internel/pkg/dingo"
)

// PermissionsModel 用户角色表
type PermissionsModel struct {
	Id             int        `gorm:"column:id" json:"id"`
	Label          string     `gorm:"column:label" json:"label"`
	Name           string     `gorm:"column:name" json:"name"`
	Describe       string     `gorm:"column:describe" json:"describe"`
	ActionData     string     `gorm:"column:action_data" json:"actionData"`
	Actions        string     `gorm:"column:actions" json:"actions"`
	Status         uint8      `gorm:"column:status" json:"status"`
	ListOrder      int8       `gorm:"column:list_order" json:"listOrder"`
	CreateAt       dingo.Time `gorm:"column:create_at" json:"createAt"`
	UpdateAt       dingo.Time `gorm:"column:update_at" json:"updateAt"`
}

type PermissionWithLogin struct {
	Id             int        `gorm:"column:id" json:"id"`
	Label          string     `gorm:"column:label" json:"label"`
	Name           string     `gorm:"column:name" json:"name"`
	Describe       string     `gorm:"column:describe" json:"describe"`
	ActionData     string     `gorm:"column:action_data" json:"actionData"`
	Actions        string     `gorm:"column:actions" json:"actions"`
}

type PsermissionWithActionList struct {
	PermissionsModel
	ActionList     string     `gorm:"column:action_list;type:text" json:"actionList"`
}

// 初始化模型
func New() *PermissionsModel {
	return &PermissionsModel{}
}

// 设置参数值
func (model *PermissionsModel) Mutate(attrs ...PermissionsAttr) *PermissionsModel {
	PermissionsAttrs(attrs).Apply(model)
	return model
}

// 获取表名
func (model *PermissionsModel) GetTableName() string {
	return "permissions"
}


